Ejemplo de un problema de dependencias con paquetes RPM
Vamos a instalar el programa Drawing (0.8.0) y hacer pequenias comprobaciones de dependencias.
Ya tengo todos los paquetes que se necesitan en la carpeta "drawing"
Despues explicare por que hay todos esos paquetes y como se llega a la conclusion de que hacen falta esos paquetes y no solo el paquete principal (drawing-0.8.0-1.1.noarch.rpm)
primero vamos a consultar la informacion general del paquete:
> rpm -qip drawing-0.8.0-1.1.noarch.rpm

Vamos a consultar las dependencias del paquete principal de la aplicacion:
> rpm -qR drawing-0.8.0-1.1.noarch.rpm

Ahora intentamos instalar el programa a ver que pasa:
# rpm -i drawing-0.8.0-1.1.noarch.rpm

Tenemos un problema de dependencias, ya que nos falta la capacidad "python3-pycairo"
Si no sabemos que paquete proporciona esa capacidad podemos usar zypper para buscarlo de la siguiente manera:
# zypper se --provides python3-pycairo

En mi caso ese paquete ya lo tengo descargado en la carpeta y listo para ser instalado:
# rpm -i python38-pycairo-1.20.0-1.6.x86_64.rpm

El paquete se ha instalado sin ningun error, ahora que ya hemos resuleto la dependencia que nos impedia instalar el paquete principal vamos a intentar instalarlo de nuevo:
# rpm -i drawing-0.8.0-1.1.noarch.rpm

En esta ocasion el paquete se ha instalado sin ningun problema, ya podemos ejecutar el programa y usarlo.

Si no sabemos cual es el comando para ejecutar el programa del paquete que instalamos podemos usar este truco:
> rpm -qlp drawing-0.8.0-1.1.noarch.rpm

(Por lo general el nombre del binario de un programa es casi el mismo que el del propio paquete y no suele dar problema, pero no siempre es asi)
Como podemos ver en este caso el nombre del binario es "drawing" incluso podemos ver la ruta completa del sitio donde se instalara /usr/bin/drawing
Ahora bien, solo instalamos 2 paquetes, pero en la carpeta habia unos cuantos mas, porque?
Si intentamos instalar el programa desde zypper obtenemos esto:
Como podemos ver cuando zypper intenta instalar drawing tambien instalara todos los paquetes que yo tenia en la carpeta, en realidad todos esos paquetes no son necesarios, pero son paquetes recomendados y paquetes que complementan las funciones de drawing (en este caso un paquete de idiomas)
Cuando zypper intenta instalar un paquete hace lo siguiente:
En nuestro caso seria:
> rpm -qRp drawing-0.8.0-1.1.noarch.rpm

En nuestro caso se cumplen todas las dependencias menos la de "python3-pycairo"
> rpm -q --recommends drawing-0.8.0-1.1.noarch.rpm

Otra manera de mostrar los paquetes recomendados es:
> zypper info --recommends drawing

En nuestro caso "yelp" es el paquete recomendado, asi que en este caso zypper lo instalara, pero a su vez, yelp tiene dependencias, por lo tanto zypper tambien las instalara, las dependencias no cumplidas de yelp son yelp-xsl y libyelp
> zypper se --supplements drawing

> zypper se --supplements yelp

Como podemos ver aqui tanto el paquete "drawing" como el paquete "yelp" tienen paquetes complementarios, por lo tanto zypper los instalara
zypper siempre intentara instalar la mayor cantidad de paquetes para dotar al maximo de funcionalidades al paquete inicial que queremos instalar, no siempre son necesarios todos los paquetes para hacer funcionar el programa que queramos instalar, pero de esta manera no perdemos posibles funcionalidades o como en este caso paquetes de idiomas.
Si queremos usar zypper para descargar solo paquetes sin instalarlos, por si queremos usar el comando rpm para hacer consultas sober los paquetes o cualquiera otra cosa, podemos hacerlo de la siguiente manera:
zypper in --download-only "nombre_paquete"
Los paquetes que descargamos de este modo se guardaran en /var/cache/zypp/packages/ dentro de esa carpeta hay unas cuantas subcarpetas por cada repositorio del que se descarguen los paquetes, cada paquete descargado estara dentro de la subcarpeta del repositorio al que pertenezca
zypper | dependencias